From: kfraser@localhost.localdomain Date: Thu, 19 Oct 2006 15:32:11 +0000 (+0100) Subject: [HVM] Windows HCT requires non-zero subvendor details in platform PCI device. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15589^2~24 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=3084f41064a2c882bda1cf4f867b5227dc87302b;p=xen.git [HVM] Windows HCT requires non-zero subvendor details in platform PCI device. Signed-off-by: Dexuan Cui --- diff --git a/tools/ioemu/hw/xen_platform.c b/tools/ioemu/hw/xen_platform.c index 89072925c2..a0e9f1e397 100644 --- a/tools/ioemu/hw/xen_platform.c +++ b/tools/ioemu/hw/xen_platform.c @@ -97,7 +97,8 @@ struct pci_config_header { uint8_t bist; /* Built in self test */ uint32_t base_address_regs[6]; uint32_t reserved1; - uint32_t reserved2; + uint16_t subsystem_vendor_id; + uint16_t subsystem_id; uint32_t rom_addr; uint32_t reserved3; uint32_t reserved4; @@ -126,6 +127,11 @@ void pci_xen_platform_init(PCIBus *bus) pch->header_type = 0; pch->interrupt_pin = 1; + /* Microsoft WHQL requires non-zero subsystem IDs. */ + /* http://www.pcisig.com/reflector/msg02205.html. */ + pch->subsystem_vendor_id = pch->vendor_id; /* Duplicate vendor id. */ + pch->subsystem_id = 0x0001; /* Hardcode sub-id as 1. */ + pci_register_io_region(d, 0, 0x100, PCI_ADDRESS_SPACE_IO, platform_ioport_map);